package q1200_minimumAbsDifference;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class Solution {
    /*
    简单题
    先排序 对于相邻的数字 一定有 arr[i + 1] - arr[i] <= arr[i + x] - arr[i] x >= 1
    所以我们只需要考虑相邻数字的差值即可 用一个gap来记录当前记录到的最小差值
    然后遍历数组 每次遇到与gap相同的就加入res
    遇到小于gap的相邻两个数字 就清空res 然后重新开始加入即可
     */
    public List<List<Integer>> minimumAbsDifference(int[] arr) {
        Arrays.sort(arr);
        List<List<Integer>> res = new ArrayList<>();
        int gap = arr[1] - arr[0];
        for (int i = 0; i < arr.length - 1; ++i) {
            if (arr[i + 1] - arr[i] == gap) {
                res.add(Arrays.asList(arr[i], arr[i + 1]));
            } else if (arr[i + 1] - arr[i] < gap) {
                res.clear();
                gap = arr[i + 1] - arr[i];
                res.add(Arrays.asList(arr[i], arr[i + 1]));
            }
        }

        return res;
    }
}
